\section{Modelos Dinámico y Funcional e Interfaz de Usuario}
	Ahora, vamos a mostrar diferentes operaciones con el fin de realizar una descripción más
	detallada del comportamiento de aquellas partes complejas del sistema o que no
	hayan sido definidas completamente. No hay prototipos de la interfaz de usuario para estas operaciones, 
	ya que todas se realizarán a través de la consola del sistema operativo y de la misma forma: pidiendo 
	el sistema cada uno de los datos e introduciendo el administrador cada uno de ellos.
	
	\subsection*{Subsistema de Gestión de Usuarios}
		\subsubsection*{SOP-0001: Operación \textit{añadir un usuario} (UC-0008)}
			\begin{figure}[H]
				\centering
				\includegraphics[width=\textwidth]{../media/sop0001.png}
				\caption{Diagrama de la operación \textit{añadir un usuario}}
			\end{figure}
			
			\begin{table}[H]
				\centering
				\begin{tabularx}{\textwidth}{|l|X|}
					\hline
					\rowcolor{LightBlue} \textbf{SOP-0001} & \textbf{Añadir un usuario}\\
					\hline
					Versión & 1.0 (15/03/2011)\\
					\hline
					Caso de uso relacionado & UC-0008\\
					\hline
					Descripción & El administrador añade un usuario registrado al sistema para que pueda hacer uso de él.\\
					\hline
					Parámetros &
						\begin{itemize2}
							\item \texttt{id} (\textit{string}): Identificador que tendrá el usuario.
							\item \texttt{grupo} (\textit{string}): Identificador del grupo de usuarios al que pertenecerá el usuario.
							\item \texttt{habilitado} (\textit{boolean}): Indica si el usuario podrá hacer uso del sistema inicialmente
							\item \texttt{nombre} (\textit{string}): Nombre del usuario.
							\item \texttt{e-mail} (\textit{string}): Dirección de e-mail del usuario.
							\item \texttt{dispositivos} (\textit{list$<$Dispositivo$>$}): Lista de dispositivos asociados al usuario.
							\item \texttt{contraseña} (\textit{string}): Contraseña del usuario. Le servirá para ejecutar los servicios
							que requiera autentificación.
						\end{itemize2}\\
					\hline
					Precondición & 
						\begin{itemize2}
							\item El sistema debe estar configurado y la base de datos debe estar preparada
							\item No debe existir un usuario con el mismo identificador
							\item El grupo de usuarios debe existir
						\end{itemize2}\\
					\hline
					Postcondición & El usuario queda registrado en el sistema con los datos aportados\\
					\hline
				\end{tabularx}
				\caption{Operación \textit{añadir un usuario}}
			\end{table}
			
	\subsection*{Subsistema de Gestión de Servicios}
		\subsubsection*{SOP-0002: Operación \textit{añadir un nuevo dispositivo asociándolo a un usuario} (UC-0017)}
			\begin{figure}[H]
				\centering
				\includegraphics[width=\textwidth]{../media/sop0002.png}
				\caption{Diagrama de la operación \textit{añadir un nuevo dispositivo asociándolo a un usuario}}
			\end{figure}
			
			\begin{table}[H]
				\centering
				\begin{tabularx}{\textwidth}{|l|X|}
					\hline
					\rowcolor{LightGreen} \textbf{SOP-0002} & \textbf{Añadir un nuevo dispositivo asociándolo a un usuario}\\
					\hline
					Versión & 1.0 (15/03/2011)\\
					\hline
					Caso de uso relacionado & UC-0017\\
					\hline
					Descripción & El administrador añade un dispositivo asociándolo al usuario. El dispositivo puede existir
					previamente asociado a otro usuario.\\
					\hline
					Parámetros &
						\begin{itemize2}
							\item \texttt{id} (\textit{string}): Identificador del dispositivo.
							\item \texttt{tipo} (\textit{string}): Identificador del tipo de dispositivo al que pertenece el dispositivo.
							\item \texttt{usuario} (\textit{string}): Identificador del usuario al que estará asociado el dispositivo.
						\end{itemize2}\\
					\hline
					Precondición &
						\begin{itemize2}
							\item El sistema debe estar configurado y la base de datos debe estar preparada
							\item El tipo de dispositivo debe existir
							\item El usuario debe existir
						\end{itemize2}\\
					\hline
					Postcondición & El dispositivo queda insertado en el sistema (si no lo estuviera antes) asociado al usuario.\\
					\hline
				\end{tabularx}
				\caption{Operación \textit{añadir un nuevo dispositivo asociándolo a un usuario}}
			\end{table}
			
		\subsubsection*{SOP-0003: Operación \textit{borrar todas las asociaciones de dispositivos con un usuario} (UC-0020)}
			\begin{figure}[H]
				\centering
				\includegraphics[width=\textwidth]{../media/sop0003.png}
				\caption{Diagrama de la operación \textit{borrar todas las asociaciones de dispositivos con un usuario}}
			\end{figure}
			
			\begin{table}[H]
				\centering
				\begin{tabularx}{\textwidth}{|l|X|}
					\hline
					\rowcolor{LightGreen} \textbf{SOP-0003} & \textbf{Borrar todas las asociaciones de dispositivos con un usuario}\\
					\hline
					Versión & 1.0 (15/03/2011)\\
					\hline
					Caso de uso relacionado & UC-0020\\
					\hline
					Descripción & El administrador borra todas las asociaciones de dispositivos a un usuario concreto.\\
					\hline
					Parámetros &
						\begin{itemize2}
							\item \texttt{usuario} (\textit{string}): Identificador del usuario.
						\end{itemize2}\\
					\hline
					Precondición &
						\begin{itemize2}
							\item El sistema debe estar configurado y la base de datos debe estar preparada
							\item El usuario debe existir
						\end{itemize2}\\
					\hline
					Postcondición & Las asociaciones quedan borradas del sistema y, en el caso de que alguno de los dispositivos
					no tengan asociaciones con otros usuarios, éstos quedan borrados también.\\
					\hline
				\end{tabularx}
				\caption{Operación \textit{borrar todas las asociaciones de dispositivos con un usuario}}
			\end{table}
			
		\subsubsection*{SOP-0004: Operación \textit{añadir un servicio} (UC-0028)}
			\begin{figure}[H]
				\centering
				\includegraphics[width=\textwidth]{../media/sop0004.png}
				\caption{Diagrama de la operación \textit{añadir un servicio}}
			\end{figure}
			
			\begin{table}[H]
				\centering
				\begin{tabularx}{\textwidth}{|l|X|}
					\hline
					\rowcolor{LightGreen} \textbf{SOP-0004} & \textbf{Añadir un servicio}\\
					\hline
					Versión & 1.0 (15/03/2011)\\
					\hline
					Caso de uso relacionado & UC-0028\\
					\hline
					Descripción & El administrador añade un servicio.\\
					\hline
					Parámetros &
						\begin{itemize2}
							\item \texttt{id} (\textit{string}): Identificador que tendrá el servicio
							\item \texttt{versión} (\textit{string}): Versión del servicio
							\item \texttt{tipo} (\textit{string}): Identificador del tipo del servicio
							\item \texttt{autentificado} (\textit{boolean}): Indica si el servicio requiere autentificación del usuario para ejecutarse
							\item \texttt{habilitado} (\textit{boolean}): Indica si el servicio estará disponible inicialmente
							\item \texttt{ruta} (\textit{string}): La ruta absoluta del archivo con el código Python del servicio
							\item \texttt{nombre} (\textit{string}): El nombre del servicio
							\item \texttt{autor} (\textit{string}): El autor del servicio
						\end{itemize2}\\
					\hline
					Precondición &
						\begin{itemize2}
							\item El sistema debe estar configurado y la base de datos debe estar preparada
							\item No debe existir otro servico con el mismo identificador
							\item El tipo del servicio debe existir
							\item Debe existir el archivo con la ruta establecida
						\end{itemize2}\\
					\hline
					Postcondición & El servicio queda añadido al sistema y, en el caso de que haya sido habilitado inicialmente, estará accesible
					por los usuarios.\\
					\hline
				\end{tabularx}
				\caption{Operación \textit{añadir un servicio}}
			\end{table}
			
		\subsubsection*{SOP-0005: Operación \textit{ejecutar un servicio} (UC-0035)}
			\begin{figure}[H]
				\centering
				\includegraphics[width=\textwidth]{../media/sop0005.png}
				\caption{Diagrama de la operación \textit{ejecutar un servicio}}
			\end{figure}
			
			\begin{table}[H]
				\centering
				\begin{tabularx}{\textwidth}{|l|X|}
					\hline
					\rowcolor{LightGreen} \textbf{SOP-0005} & \textbf{Ejecutar un servicio}\\
					\hline
					Versión & 1.0 (15/03/2011)\\
					\hline
					Caso de uso relacionado & UC-0035\\
					\hline
					Descripción & Un usuario normal (o registrado si se requiere autentificación) ejecuta un servicio.\\
					\hline
					Parámetros &
						\begin{itemize2}
							\item \texttt{id} (\textit{string}): Identificador del servicio a ejecutar
							\item \texttt{argumentos} (\textit{list$<$string$>$}): Argumentos de entrada para el servicio
							\item \texttt{usuario} (\textit{string}): Identificador del usuario, en caso de autentificación requerida
							\item \texttt{contraseña} (\textit{string}): Contraseña del usuario, en caso de autentificación requerida
						\end{itemize2}\\
					\hline
					Precondición &
						\begin{itemize2}
							\item El sistema debe estar configurado y la base de datos debe estar preparada
							\item El servicio a ejecutar debe existir
							\item El servicio a ejecutar debe ser de tipo llamable o no automático
							\item En caso de autentificación requerida, el usuario debe existir
							\item En caso de autentificación requerida, la contraseña del usuario debe ser la correcta
						\end{itemize2}\\
					\hline
					Postcondición & El sistema ejecuta el servicio y devuelve el resultado del mismo al usuario, en forma
					de texto, que puede ser vacío si el servicio ejecutado no tiene que devolver ninguna información.\\
					\hline
				\end{tabularx}
				\caption{Operación \textit{ejecutar un servicio}}
			\end{table}
			
		\subsubsection*{SOP-0006: Operación \textit{añadir un permiso de servicio} (UC-0039)}
			\begin{figure}[H]
				\centering
				\includegraphics[width=\textwidth]{../media/sop0006.png}
				\caption{Diagrama de la operación \textit{añadir un permiso de servicio}}
			\end{figure}
			
			\begin{table}[H]
				\centering
				\begin{tabularx}{\textwidth}{|l|X|}
					\hline
					\rowcolor{LightGreen} \textbf{SOP-0006} & \textbf{Añadir un permiso de servicio}\\
					\hline
					Versión & 1.0 (15/03/2011)\\
					\hline
					Caso de uso relacionado & UC-0039\\
					\hline
					Descripción & El administrador añade un permiso de servicio.\\
					\hline
					Parámetros &
						\begin{itemize2}
							\item \texttt{servicio} (\textit{string}): Identificador del servicio
							\item \texttt{grupoUsuarios} (\textit{string}): Identificador del grupo de usuarios
						\end{itemize2}\\
					\hline
					Precondición &
						\begin{itemize2}
							\item El sistema debe estar configurado y la base de datos debe estar preparada
							\item El servicio debe existir
							\item El grupo de usuarios debe existir
							\item El permiso no debe existir previamente
						\end{itemize2}\\
					\hline
					Postcondición & El permiso de servicio queda añadido al sistema y el grupo de usuarios queda autorizado
					a ejecutar el servicio establecido, es decir, todos los usuarios de ese grupo podrán ejecutar dicho
					servicio.\\
					\hline
				\end{tabularx}
				\caption{Operación \textit{añadir un permiso de servicio}}
			\end{table}
			
		\subsubsection*{SOP-0007: Operación \textit{registrar dispositivos detectados por el sistema} (UC-0044)}
			\begin{figure}[H]
				\centering
				\includegraphics[width=\textwidth]{../media/sop0007.png}
				\caption{Diagrama de la operación \textit{registrar dispositivos detectados por el sistema}}
			\end{figure}
			
			\begin{table}[H]
				\centering
				\begin{tabularx}{\textwidth}{|l|X|}
					\hline
					\rowcolor{LightGreen} \textbf{SOP-0007} & \textbf{Registrar dispositivos detectados por el sistema}\\
					\hline
					Versión & 1.0 (15/03/2011)\\
					\hline
					Caso de uso relacionado & UC-0044\\
					\hline
					Descripción & Un radar registra los dispositivos que ha detectado en el sistema, identificándose con
					el identificador y la contraseña del usuario especial que tiene asignado.\\
					\hline
					Parámetros &
						\begin{itemize2}
							\item \texttt{dispositivos} (\textit{list$<$Dispositivo$>$}): Dispositivos a registrar, cada uno de ellos
							con su identificador y su tipo de dispositivo.
							\item \texttt{radar} (\textit{string}): Identificador del radar
							\item \texttt{usuario} (\textit{string}): Identificador del usuario con el que se identifica el radar
							\item \texttt{contraseña} (\textit{string}): Contraseña del usuario con el que se identifica el radar
						\end{itemize2}\\
					\hline
					Precondición &
						\begin{itemize2}
							\item El sistema debe estar configurado y la base de datos debe estar preparada
							\item El radar debe existir
							\item El usuario debe existir y la contraseña debe ser la correcta
						\end{itemize2}\\
					\hline
					Postcondición & Los dispositivos quedan registrados en el historial de detecciones del sistema, 
					junto con el identificador del radar que los ha detectado y la fecha en la que ha ocurrido la detección.\\
					\hline
				\end{tabularx}
				\caption{Operación \textit{registrar dispositivos detectados por el sistema}}
			\end{table}
			
	\subsection*{Subsistema de Gestión de Sistema}
		\subsubsection*{SOP-0008: Operación \textit{configurar el sistema} (UC-0047)}
			\begin{figure}[H]
				\centering
				\includegraphics[width=\textwidth]{../media/sop0008.png}
				\caption{Diagrama de la operación \textit{configurar el sistema}}
			\end{figure}
			
			\begin{table}[H]
				\centering
				\begin{tabularx}{\textwidth}{|l|X|}
					\hline
					\rowcolor{LightPurple} \textbf{SOP-0008} & \textbf{Configurar el sistema}\\
					\hline
					Versión & 1.0 (15/03/2011)\\
					\hline
					Caso de uso relacionado & UC-0047\\
					\hline
					Descripción & El administrador configura el sistema, guardando dicha configuración.\\
					\hline
					Parámetros &
						\begin{itemize2}
							\item \texttt{tipoBD} (\textit{string}): Tipo del host de la base de datos (por ejemplo: "mysql")
							\item \texttt{hostBD} (\textit{string}): Host de la base de datos (por ejemplo: "http://localhost")
							\item \texttt{puertoBD} (\textit{integer}): Puerto del host de la base de datos
							\item \texttt{nombreBD} (\textit{string}): Nombre de la base de datos
							\item \texttt{usuarioBD} (\textit{string}): Identificador del usuario con el que identificarse en el host de la base de datos
							\item \texttt{contraseñaBD} (\textit{string}): Contraseña del usuario con el que identificarse en el host de la base de datos
							\item \texttt{hostServicioWeb} (\textit{string}): Host del servicio web de acceso a servicios del sistema que se lanzará
							cuando el sistema esté listo (por ejemplo: "http://localhost")
							\item \texttt{puertoServicioWeb} (\textit{integer}): Puerto que usará el servicio web de acceso a servicios del sistema que se 
							lanzará cuando el sistema esté listo
						\end{itemize2}\\
					\hline
					Precondición &
						\begin{itemize2}
							\item El tipo de host de la base de datos debe estar soportado por el sistema
							\item El host de la base de datos debe existir
							\item El puerto del host de la base de datos debe ser el correcto
							\item La base de datos cuyo nombre se especifica debe existir
							\item El usuario del host de la base de datos debe existir y la contraseña debe ser la correcta
							\item El host del servicio web debe ser válido
							\item El puerto del servicio web no debe estar utilizándose previamente por otro proceso
						\end{itemize2}\\
					\hline
					Postcondición & La configuración del sistema queda guardada y el sistema es apto para preparar la base de datos
					del mismo, es decir, para crear la estructura de la misma.\\
					\hline
				\end{tabularx}
				\caption{Operación \textit{configurar el sistema}}
			\end{table}
			
		\subsubsection*{SOP-0009: Operación \textit{preparar la base de datos del sistema} (UC-0048)}
			\begin{figure}[H]
				\centering
				\includegraphics[width=\textwidth]{../media/sop0009.png}
				\caption{Diagrama de la operación \textit{preparar la base de datos del sistema}}
			\end{figure}
			
			\begin{table}[H]
				\centering
				\begin{tabularx}{\textwidth}{|l|X|}
					\hline
					\rowcolor{LightPurple} \textbf{SOP-0009} & \textbf{Preparar la base de datos del sistema}\\
					\hline
					Versión & 1.0 (15/03/2011)\\
					\hline
					Caso de uso relacionado & UC-0048\\
					\hline
					Descripción & El administrador prepara la base de datos del sistema, es decir, crea su estructura: tablas,
					restricciones, etc.\\
					\hline
					Precondición &
						\begin{itemize2}
							\item El sistema debe estar configurado y dicha configuración debe ser válida
							\item El host de la base de datos establecido en la configuración del sistema debe estar disponible
						\end{itemize2}\\
					\hline
					Postcondición & La estructura de la base de datos que usará el sistema queda instalada y el sistema está
					listo para ser utilizado.\\
					\hline
				\end{tabularx}
				\caption{Operación \textit{preparar la base de datos del sistema}}
			\end{table}
